\section{Introducción}

Como todo proyecto, \texttt{Bench::Test} nace a raíz de una
necesidad de un colectivo que ha de ser satisfecha. El trabajo
de un investigador en el campo de la informática en general,
y de la algoritmia en particular, es duro, difícil y, en muchas
ocasiones, repetitivo. El diseño de nuevos algoritmos o 
la modificación y optimización de algoritmos ya conocidos,
están a la orden del día para un investigador en este
sector.

Casi tan importante como el diseño y la implementación
de un algoritmo, es su documentación y la creación de un
generoso conjunto de pruebas que permitan comprobar tanto
la validez, como la eficiencia del mismo.

Actualmente existen muchas herramientas que permiten la
planificación de ejecuciones por lotes. La mayoría de ellas
se ven limitadas a ejecuciones secuenciales en la máquina
local sin ningún tipo de postprocesamiento ni formateo
de los resultados. Cubrir estas limitaciones ha sido
el objetivo principal de este proyecto.

\section{Objetivos}

En un principio el paquete \texttt{Bench::Test} fue ideado
como herramienta que permitiera al usuario recibir una
respuesta rápida (\textit{fast feedback}) de los resultados
que obtenía su proyecto/algoritmo frente a un
conjunto determinado de pruebas. Finalmente,
el módulo que se presenta en esta memoria ha ido ganando
funcionalidades poco a poco hasta terminar convirtiéndose
en una potente herramienta cuya flexibilidad pone en las
manos del usuario un sin fin de posibilidades. Por ejemplo:

\begin{itemize}
\item 
Comparar el rendimiento de un algoritmo frente a otro. Para
ello se define un conjunto de pruebas variadas y se programan
ejecuciones con cada uno de los algoritmos a comparar.
\item 
Comparar el rendimiento de diferentes máquinas. Se establece
un mismo algoritmo (o varios) y se ejecutan sobre las
máquinas que se desea comparar.
\item
Comparar los resultados a través del tiempo. El usuario puede
necesitar comparar los resultados de su algoritmo en el
estado actual con los resultados obtenidos en versiones
anteriores.
\item
Ofrecer al usuario no sólo una respuesta rápida, sino darle
la posibilidad de obtener los resultados en formatos tan
extendidos como XML, HTML y Latex, entre otros.
\end{itemize}

Éstos y otros objetivos han sido plenamente cubiertos durante
el desarrollo de este proyecto.
